package eteam.aps.model;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 用户实体
 */
@Data
@TableName(value = "sp_user")
public class UserEntity implements Serializable {
    /**
     * 主键ID
     */
    @TableId(value = "FUserId", type = IdType.INPUT)
    public String fuserid;
    /**
     * 用户名
     */
    @TableField(value = "FUserName")
    public String fusername;
    /**
     * 密码
     */
    @TableField(value = "FPassword")
    public String fpassword;
    /**
     * 用户全名
     */
    @TableField(value = "FFullName")
    public String ffullname;
    /**
     * 0: 用户
     * 2: 角色
     * 默认两个角色: Administrators, AppUser
     */
    @TableField(value = "FPersonType")
    public Integer fpersontype;
    /**
     * 人员ID
     */
    @TableField(value = "FPersonId")
    public String fpersonid;
    /**
     * 用户组对应机构
     */
    @TableField(value = "FGroupOrgId")
    public String fgrouporgid;
    /**
     * 角色适用机构类型：0机构，10部门，20班组
     */
    @TableField(value = "FUnitTypeId")
    public Integer funittypeid;
    /**
     * 权限：0无权限 1本部门 2本部门及以下 99无限制
     */
    @TableField(value = "FPermission")
    public Integer fpermission;
    /**
     * 状态【-1删除 0停用 1启用】
     */
    @TableField(value = "State")
    public Integer state;

    /**
     * 录入人
     */
    @TableField(value = "FCreator")
    public String fcreator;
    /**
     * 录入人姓名
     */
    @TableField(value = "FCreatorName")
    public String fcreatorname;
    /**
     * 录入时间
     */
    @TableField(value = "FCreateTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    public Date fcreatetime;
    /**
     * 最后修改人
     */
    @TableField(value = "FLastModifier")
    public String flastmodifier;
    /**
     * 最后修改人姓名
     */
    @TableField(value = "FLastModifierName")
    public String flastmodifiername;
    /**
     * 最后修改时间
     */
    @TableField(value = "FLastModifyTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    public Date flastmodifytime;
    /**
     * 时间戳
     */
    @TableField(value = "FTimeStamp")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    public Date ftimestamp;

    @TableField(exist = false)
    public String empcode;
    @TableField(exist = false)
    public String empname;
    @TableField(exist = false)
    public String ftoken;
    @TableField(exist = false)
    public List<String> roles;
    @TableField(exist = false)
    public List<String> usecases;
}
